package com.jch.learn.springframework;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

// Bean 工厂，包含存放bean的map
public class BeanFactory {

    // BeanDefinitionMap bean容器 缓存bean信息
    private Map<String,BeanDefinition> beanDefinitionMap = new ConcurrentHashMap<String, BeanDefinition>();

    // 根据bean名称获取bean
    public Object getBean(String name){
        return beanDefinitionMap.get(name).getBean();
    }

    /**
     * 向bean工厂注册bean信息
     * @param beanName bean名称
     * @param beanDefinition bean定义信息
     */
    public void registerBeanDefinition(String beanName,BeanDefinition beanDefinition){
        beanDefinitionMap.put(beanName,beanDefinition);
    }

}
